For high volume portable multimedia products such as mobile phones and music players, system design focuses on power consumption and silicon area. An embedded memory (ISRAM) has lower power consumption and is faster than an external memory such as an SDRAM. However, ISRAM size has a large impact on the die area and thus the selling price of a product. ISRAM is used by software for storing both code that is executed on an embedded processor (ARM) and for storing data.
Nexperia™ Mobile Multimedia Processor PNX0103 technology facilitates fast download of content to mobile phones and portable flash storage devices, whilst reducing power consumption and increasing battery life on the move. With low power audio capabilities of the PNX0103, consumers can enjoy up to 100 hours of uninterrupted audio playback on their MP3 players. The PNX0103 incorporates a USB controller that enables efficient data transfer between the media player and other USB peripheral devices such as PCs. It is also equipped with interfaces to wireless or Bluetooth interconnectivity modules.
In the PNX0103, a management architecture may be used that loads code from an external storage source like a NAND flash when the ARM requires the instruction (On-Demand-Paging, ODP). An ARM infrastructure, which may be used to enable this, is the Memory Management Unit (MMU) and the data and instruction abort handlers. The MMU provides a logical to physical mapping of the ARM memory space. A fine grained mapping relates to 4 kB or 1 kB pages. This may also be the granularity of the ODP pages.
The amount of page loads influences the system performance, since cycles spent during loading cannot be used for anything else, and also power consumption since accessing the storage device and ARM cycles consume power. Standard linking technology does not take into account these page boundaries. This can cause frequently executed code sharing the same pages as infrequently used code and can cause a function to span two pages even though it is significantly smaller than a page size.
WO 2004/006095 A1 discloses a method, for use in a processor, including mapping a first data access having less than a predetermined memory footprint to a first memory area, and mapping a second data access having greater than the predetermined memory footprint to a second memory area. The method may also include compiling computer code, inserting annotations into an intermediate representation of the computer code generated during compiling, propagating the annotations from the intermediate representation to a low-level is representation of the computer code generated during compiling, and inserting instructions into the low-level representation, the instructions controlling mapping of the first data and the second data.
However, conventional software management systems may suffer from an inefficient access to different software items of an algorithm, thus rendering access to the software slow and resulting in a high electrical power demand.